home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 125 / Computer Shopper CD-ROM Issue 125 (1998-07)(Dennis Publishing).iso / Business / Dazzler / DAZZLER.Z / CVariable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-26  |  7.9 KB  |  599 lines

  1. import java.io.DataInputStream;
  2. import java.util.Date;
  3.  
  4. class CVariable {
  5.    public static final String[] DateFormats = new String[]{"Custom", "%d/%m/%y", "%d-%b-%y", "%d-%B-%y", "%A %d %B %y", "%I:%M %p", "%I:%M:%S", null};
  6.    public static final String[] TimeSpanFormats = new String[]{"Custom", "%H:%M:%S", "%M:%S", null};
  7.    public static final String[] DateSymbols = new String[]{"%A", "%d", "%m", "%b", "%B", "%y", "%I", "%H", "%M", "%S"};
  8.    public static final int nSymbolCount = 10;
  9.    protected int m_nFlags = 0;
  10.    protected String m_strName = "";
  11.    protected String m_strValue = "";
  12.    protected double m_dValue = (double)0.0F;
  13.    protected byte m_cDecPlaces = 0;
  14.    protected long m_lValue = 0L;
  15.    protected Date m_dateValue = null;
  16.    protected Date m_timeSpanValue = null;
  17.    protected String m_strFormat = "";
  18.    protected byte m_cFormat = 0;
  19.    protected char m_nID = 0;
  20.    protected CRecordSetData m_pRecordSetData;
  21.  
  22.    void SetName(String var1) {
  23.       this.m_strName = var1;
  24.       this.CreateHashValue();
  25.    }
  26.  
  27.    boolean LoadFromFile(DataInputStream var1) {
  28.       FileLoad.ReadClass(var1);
  29.       byte var2 = 0;
  30.  
  31.       try {
  32.          this.m_strName = FileLoad.ReadCString(var1);
  33.          this.m_cDecPlaces = var1.readByte();
  34.          this.m_nFlags = FileLoad.ReadCPlusInt(var1);
  35.          this.m_nID = (char)FileLoad.ReadCPlusInt(var1);
  36.          this.m_cFormat = var1.readByte();
  37.          this.m_strFormat = FileLoad.ReadCString(var1);
  38.          var2 = var1.readByte();
  39.       } catch (Exception var5) {
  40.          System.out.println(((Throwable)var5).getMessage());
  41.          return false;
  42.       }
  43.  
  44.       if (var2 > 0) {
  45.          this.m_pRecordSetData = new CRecordSetData();
  46.          this.m_pRecordSetData.LoadFromFile(var1);
  47.       }
  48.  
  49.       return true;
  50.    }
  51.  
  52.    CVariable Plus(CVariable var1) {
  53.       this.m_nFlags &= -32513;
  54.       if ((var1.m_nFlags & 256) != 0) {
  55.          this.m_nFlags |= 256;
  56.          String var10001 = this.m_strValue;
  57.          this.m_strValue = var10001 + var1.m_strValue;
  58.       } else if ((var1.m_nFlags & 512) != 0) {
  59.          this.m_nFlags |= 512;
  60.          this.m_dValue += var1.m_dValue;
  61.       } else if ((var1.m_nFlags & 1024) != 0) {
  62.          this.m_nFlags |= 1024;
  63.          this.m_lValue += var1.m_lValue;
  64.       } else if ((var1.m_nFlags & 2048) != 0) {
  65.          this.m_nFlags |= 2048;
  66.       } else if ((var1.m_nFlags & 4096) != 0) {
  67.          this.m_nFlags |= 4096;
  68.       }
  69.  
  70.       return this;
  71.    }
  72.  
  73.    CVariable Minus(CVariable var1) {
  74.       this.m_nFlags &= -32513;
  75.       if ((var1.m_nFlags & 512) != 0) {
  76.          this.m_nFlags |= 512;
  77.          this.m_dValue -= var1.m_dValue;
  78.       } else if ((var1.m_nFlags & 1024) != 0) {
  79.          this.m_nFlags |= 1024;
  80.          this.m_lValue -= var1.m_lValue;
  81.       } else if ((var1.m_nFlags & 2048) != 0) {
  82.          this.m_nFlags |= 2048;
  83.       } else if ((var1.m_nFlags & 4096) != 0) {
  84.          this.m_nFlags |= 4096;
  85.       }
  86.  
  87.       return this;
  88.    }
  89.  
  90.    boolean Equals(CVariable var1) {
  91.       boolean var2 = false;
  92.       if ((var1.m_nFlags & 256) != 0) {
  93.          var2 = this.m_strValue.equals(var1.m_strValue);
  94.       } else if ((var1.m_nFlags & 512) != 0) {
  95.          byte var3 = (byte)Math.max(this.m_cDecPlaces, var1.m_cDecPlaces);
  96.          if (var3 == 0) {
  97.             var3 = 4;
  98.          }
  99.  
  100.          var2 = (long)(this.m_dValue * (double)(10 * var3)) == (long)(var1.m_dValue * (double)(10 * var3));
  101.       } else if ((var1.m_nFlags & 1024) != 0) {
  102.          var2 = this.m_lValue == var1.m_lValue;
  103.       } else if ((var1.m_nFlags & 2048) != 0) {
  104.          var2 = this.m_dateValue == var1.m_dateValue;
  105.       } else if ((var1.m_nFlags & 4096) != 0) {
  106.          var2 = this.m_timeSpanValue == var1.m_timeSpanValue;
  107.       }
  108.  
  109.       return var2;
  110.    }
  111.  
  112.    int GetFlags() {
  113.       return this.m_nFlags;
  114.    }
  115.  
  116.    String GetName() {
  117.       return this.m_strName;
  118.    }
  119.  
  120.    void Copy(CVariable var1) {
  121.       this.m_nID = (char)var1.GetID();
  122.       this.m_nFlags = var1.m_nFlags;
  123.       this.m_strName = var1.m_strName;
  124.       this.m_strValue = var1.m_strValue;
  125.       this.m_dValue = var1.m_dValue;
  126.       this.m_lValue = var1.m_lValue;
  127.       this.m_dateValue = var1.m_dateValue;
  128.       this.m_timeSpanValue = var1.m_timeSpanValue;
  129.       this.m_cDecPlaces = var1.m_cDecPlaces;
  130.       this.m_strFormat = var1.m_strFormat;
  131.       this.m_cFormat = var1.m_cFormat;
  132.    }
  133.  
  134.    CVariable DividedBy(CVariable var1) {
  135.       this.m_nFlags &= -32513;
  136.       if ((var1.m_nFlags & 512) != 0) {
  137.          this.m_nFlags |= 512;
  138.          if (var1.m_dValue != (double)0.0F) {
  139.             this.m_dValue /= var1.m_dValue;
  140.          }
  141.       } else if ((var1.m_nFlags & 1024) != 0) {
  142.          this.m_nFlags |= 1024;
  143.          if (var1.m_lValue != 0L) {
  144.             this.m_lValue /= var1.m_lValue;
  145.          }
  146.       }
  147.  
  148.       return this;
  149.    }
  150.  
  151.    int IsBinaryType() {
  152.       return this.m_nFlags & 16384;
  153.    }
  154.  
  155.    double GetNumericValue() {
  156.       return this.m_dValue;
  157.    }
  158.  
  159.    long GetIntegerValue() {
  160.       return this.m_lValue;
  161.    }
  162.  
  163.    void SetValue(String var1) {
  164.       this.m_strValue = var1;
  165.    }
  166.  
  167.    void SetValue(double var1) {
  168.       this.m_dValue = var1;
  169.    }
  170.  
  171.    void SetValue(long var1) {
  172.       this.m_lValue = var1;
  173.    }
  174.  
  175.    void SetValue(int var1) {
  176.       this.m_lValue = (long)var1;
  177.    }
  178.  
  179.    void SetValue(Date var1) {
  180.       this.m_dateValue = var1;
  181.    }
  182.  
  183.    boolean IsLessThan(CVariable var1) {
  184.       boolean var2 = false;
  185.       if ((var1.m_nFlags & 256) != 0) {
  186.          var2 = this.m_strValue.length() < var1.m_strValue.length();
  187.       } else if ((var1.m_nFlags & 512) != 0) {
  188.          var2 = this.m_dValue < var1.m_dValue;
  189.       } else if ((var1.m_nFlags & 1024) != 0) {
  190.          var2 = this.m_lValue < var1.m_lValue;
  191.       } else if ((var1.m_nFlags & 2048) == 0 && (var1.m_nFlags & 4096) != 0) {
  192.       }
  193.  
  194.       return var2;
  195.    }
  196.  
  197.    int IsRecordSetField() {
  198.       return this.m_nFlags & 8;
  199.    }
  200.  
  201.    int IsNumericType() {
  202.       return this.m_nFlags & 512;
  203.    }
  204.  
  205.    int IsIntegerType() {
  206.       return this.m_nFlags & 1024;
  207.    }
  208.  
  209.    int IsTimeSpanType() {
  210.       return this.m_nFlags & 4096;
  211.    }
  212.  
  213.    int IsRecordSetType() {
  214.       return this.m_nFlags & 8192;
  215.    }
  216.  
  217.    CVariable MultipliedBy(CVariable var1) {
  218.       this.m_nFlags &= -32513;
  219.       if ((var1.m_nFlags & 512) != 0) {
  220.          this.m_nFlags |= 512;
  221.          this.m_dValue *= var1.m_dValue;
  222.       } else if ((var1.m_nFlags & 1024) != 0) {
  223.          this.m_nFlags |= 1024;
  224.          this.m_lValue *= var1.m_lValue;
  225.       }
  226.  
  227.       return this;
  228.    }
  229.  
  230.    String GetDateFormat(byte var1, String var2) {
  231.       String var3 = "";
  232.       if (var1 == 0) {
  233.          if (var2.length() != 0) {
  234.             var3 = this.InsertDateValues(var2);
  235.          } else {
  236.             var3 = DateFormats[0];
  237.          }
  238.       } else if (var1 > 0 && var1 < 7) {
  239.          var3 = this.InsertDateValues(DateFormats[var1]);
  240.       }
  241.  
  242.       return var3;
  243.    }
  244.  
  245.    int CreateHashValue() {
  246.       this.m_nID = 0;
  247.       if (this.m_strName.length() > 0) {
  248.          String var1 = this.m_strName;
  249.          int var2 = this.m_strName.length();
  250.  
  251.          for(int var3 = 0; var3 < var2; ++var3) {
  252.             this.m_nID = (char)((this.m_nID << 5) + this.m_nID + var1.charAt(var3));
  253.          }
  254.       }
  255.  
  256.       return this.m_nID;
  257.    }
  258.  
  259.    int IsGlobal() {
  260.       return this.m_nFlags & 2;
  261.    }
  262.  
  263.    String GetNumericValueAsString() {
  264.       String var1 = null;
  265.       if (this.IsNumericType() != 0) {
  266.          var1 = Double.toString(this.GetNumericValue());
  267.          int var2 = var1.indexOf(46);
  268.          if (var2 == -1) {
  269.             if (this.m_cDecPlaces > 0) {
  270.                var1 = var1 + ".";
  271.                var1 = this.Pad(var1, this.m_cDecPlaces);
  272.             }
  273.          } else {
  274.             int var3 = var1.length() - (var2 + 1);
  275.             if (this.m_cDecPlaces == 0) {
  276.                var1 = var1.substring(0, var2);
  277.             } else if (var3 > this.m_cDecPlaces) {
  278.                var1 = var1.substring(0, var2 + this.m_cDecPlaces + 1);
  279.             } else if (var3 < this.m_cDecPlaces) {
  280.                var1 = this.Pad(var1, this.m_cDecPlaces - var3);
  281.             }
  282.          }
  283.       }
  284.  
  285.       return var1;
  286.    }
  287.  
  288.    boolean IsMoreThan(CVariable var1) {
  289.       boolean var2 = false;
  290.       if ((var1.m_nFlags & 256) != 0) {
  291.          var2 = this.m_strValue.length() > var1.m_strValue.length();
  292.       } else if ((var1.m_nFlags & 512) != 0) {
  293.          var2 = this.m_dValue > var1.m_dValue;
  294.       } else if ((var1.m_nFlags & 1024) != 0) {
  295.          var2 = this.m_lValue > var1.m_lValue;
  296.       } else if ((var1.m_nFlags & 2048) == 0 && (var1.m_nFlags & 4096) != 0) {
  297.       }
  298.  
  299.       return var2;
  300.    }
  301.  
  302.    String Pad(String var1, int var2) {
  303.       if (var1 != null) {
  304.          for(int var3 = 0; var3 < var2; ++var3) {
  305.             var1 = var1 + "0";
  306.          }
  307.       }
  308.  
  309.       return var1;
  310.    }
  311.  
  312.    int IsStringType() {
  313.       return this.m_nFlags & 256;
  314.    }
  315.  
  316.    int IsDateType() {
  317.       return this.m_nFlags & 2048;
  318.    }
  319.  
  320.    int GetType() {
  321.       short var1 = 0;
  322.       if ((this.m_nFlags & 256) != 0) {
  323.          var1 = 256;
  324.       } else if ((this.m_nFlags & 512) != 0) {
  325.          var1 = 512;
  326.       } else if ((this.m_nFlags & 1024) != 0) {
  327.          var1 = 1024;
  328.       } else if ((this.m_nFlags & 2048) != 0) {
  329.          var1 = 2048;
  330.       } else if ((this.m_nFlags & 4096) != 0) {
  331.          var1 = 4096;
  332.       } else if ((this.m_nFlags & 8192) != 0) {
  333.          var1 = 8192;
  334.       } else if ((this.m_nFlags & 16384) != 0) {
  335.          var1 = 16384;
  336.       }
  337.  
  338.       return var1;
  339.    }
  340.  
  341.    String InsertDateValues(String var1) {
  342.       Date var7 = new Date();
  343.       int var8 = 0;
  344.  
  345.       do {
  346.          int var2;
  347.          String var4;
  348.          String var5;
  349.          String var6;
  350.          for(; (var2 = var1.indexOf(DateSymbols[var8])) != -1; var1 = var5.concat(var4).concat(var6)) {
  351.             var4 = this.GetDateValue(var7, var8);
  352.             int var3 = var1.length();
  353.             if (var2 > 0) {
  354.                var5 = var1.substring(0, var2);
  355.             } else {
  356.                var5 = "";
  357.             }
  358.  
  359.             if (var2 + 2 < var3) {
  360.                var6 = var1.substring(var2 + 2, var3);
  361.             } else {
  362.                var6 = "";
  363.             }
  364.          }
  365.  
  366.          ++var8;
  367.       } while(var8 < 10);
  368.  
  369.       return var1;
  370.    }
  371.  
  372.    String GetTimeSpanFormat(byte var1, String var2) {
  373.       String var3 = "";
  374.       if (var1 == 0) {
  375.          if (var2.length() != 0) {
  376.             var3 = this.InsertDateValues(var2);
  377.          } else {
  378.             var3 = TimeSpanFormats[0];
  379.          }
  380.       } else if (var1 > 0 && var1 < 3) {
  381.          var3 = this.InsertDateValues(TimeSpanFormats[var1]);
  382.       }
  383.  
  384.       return var3;
  385.    }
  386.  
  387.    void Reset() {
  388.       this.m_strValue = "";
  389.       this.m_dValue = (double)0.0F;
  390.       this.m_lValue = 0L;
  391.       this.m_dateValue = new Date();
  392.       this.m_timeSpanValue = new Date();
  393.    }
  394.  
  395.    String GetVariableDataAsString() {
  396.       String var1 = null;
  397.       if (this.m_strName.length() != 0) {
  398.          if (this.IsStringType() != 0) {
  399.             var1 = this.GetStringValue();
  400.          } else if (this.IsNumericType() != 0) {
  401.             var1 = this.GetNumericValueAsString();
  402.          } else if (this.IsIntegerType() != 0) {
  403.             var1 = Long.toString(this.GetIntegerValue());
  404.          } else if (this.IsDateType() != 0) {
  405.             var1 = this.GetDateFormat(this.m_cFormat, this.m_strFormat);
  406.          } else if (this.IsTimeSpanType() != 0) {
  407.             var1 = this.GetTimeSpanFormat(this.m_cFormat, this.m_strFormat);
  408.          }
  409.       }
  410.  
  411.       return var1;
  412.    }
  413.  
  414.    int GetID() {
  415.       return this.m_nID;
  416.    }
  417.  
  418.    CVariable PowerOf(CVariable var1) {
  419.       this.m_nFlags &= -32513;
  420.       if ((var1.m_nFlags & 512) != 0) {
  421.          this.m_nFlags |= 512;
  422.          this.m_dValue = Math.pow(this.m_dValue, var1.m_dValue);
  423.       } else if ((var1.m_nFlags & 1024) != 0) {
  424.          this.m_nFlags |= 1024;
  425.          this.m_lValue = (long)Math.pow((double)this.m_lValue, (double)var1.m_lValue);
  426.       }
  427.  
  428.       return this;
  429.    }
  430.  
  431.    String GetStringValue() {
  432.       return this.m_strValue == null ? "" : this.m_strValue;
  433.    }
  434.  
  435.    int IsProtected() {
  436.       return this.m_nFlags & 1;
  437.    }
  438.  
  439.    String GetDateValue(Date var1, int var2) {
  440.       String var3 = "";
  441.       switch (var2) {
  442.          case 0:
  443.             switch (var1.getDay()) {
  444.                case 0:
  445.                   var3 = "Sunday";
  446.                   return var3;
  447.                case 1:
  448.                   var3 = "Monday";
  449.                   return var3;
  450.                case 2:
  451.                   var3 = "Tuesday";
  452.                   return var3;
  453.                case 3:
  454.                   var3 = "Wednesday";
  455.                   return var3;
  456.                case 4:
  457.                   var3 = "Thursday";
  458.                   return var3;
  459.                case 5:
  460.                   var3 = "Friday";
  461.                   return var3;
  462.                case 6:
  463.                   var3 = "Saturday";
  464.                   return var3;
  465.                default:
  466.                   return var3;
  467.             }
  468.          case 1:
  469.             var3 = Integer.toString(var1.getDate());
  470.             break;
  471.          case 2:
  472.             var3 = Integer.toString(var1.getMonth() + 1);
  473.             break;
  474.          case 3:
  475.          case 4:
  476.             switch (var1.getMonth()) {
  477.                case 0:
  478.                   var3 = "January";
  479.                   return var3;
  480.                case 1:
  481.                   var3 = "February";
  482.                   return var3;
  483.                case 2:
  484.                   var3 = "March";
  485.                   return var3;
  486.                case 3:
  487.                   var3 = "April";
  488.                   return var3;
  489.                case 4:
  490.                   var3 = "May";
  491.                   return var3;
  492.                case 5:
  493.                   var3 = "June";
  494.                   return var3;
  495.                case 6:
  496.                   var3 = "July";
  497.                   return var3;
  498.                case 7:
  499.                   var3 = "August";
  500.                   return var3;
  501.                case 8:
  502.                   var3 = "September";
  503.                   return var3;
  504.                case 9:
  505.                   var3 = "October";
  506.                   return var3;
  507.                case 10:
  508.                   var3 = "November";
  509.                   return var3;
  510.                case 11:
  511.                   var3 = "December";
  512.                   return var3;
  513.                default:
  514.                   return var3;
  515.             }
  516.          case 5:
  517.             var3 = Integer.toString(var1.getYear() + 1900);
  518.             break;
  519.          case 6:
  520.             var3 = Integer.toString(var1.getHours());
  521.          case 7:
  522.          default:
  523.             break;
  524.          case 8:
  525.             var3 = Integer.toString(var1.getMinutes());
  526.             break;
  527.          case 9:
  528.             var3 = Integer.toString(var1.getSeconds());
  529.       }
  530.  
  531.       return var3;
  532.    }
  533.  
  534.    boolean MoreOrEqual(CVariable var1) {
  535.       boolean var2 = false;
  536.       if ((var1.m_nFlags & 256) != 0) {
  537.          var2 = this.m_strValue.length() >= var1.m_strValue.length();
  538.       } else if ((var1.m_nFlags & 512) != 0) {
  539.          byte var3 = (byte)Math.max(this.m_cDecPlaces, var1.m_cDecPlaces);
  540.          if (var3 == 0) {
  541.             var3 = 4;
  542.          }
  543.  
  544.          var2 = (long)(this.m_dValue * (double)(10 * var3)) >= (long)(var1.m_dValue * (double)(10 * var3));
  545.       } else if ((var1.m_nFlags & 1024) != 0) {
  546.          var2 = this.m_lValue >= var1.m_lValue;
  547.       } else if ((var1.m_nFlags & 2048) == 0 && (var1.m_nFlags & 4096) != 0) {
  548.       }
  549.  
  550.       return var2;
  551.    }
  552.  
  553.    boolean LessOrEqual(CVariable var1) {
  554.       boolean var2 = false;
  555.       if ((var1.m_nFlags & 256) != 0) {
  556.          var2 = this.m_strValue.length() <= var1.m_strValue.length();
  557.       } else if ((var1.m_nFlags & 512) != 0) {
  558.          byte var3 = (byte)Math.max(this.m_cDecPlaces, var1.m_cDecPlaces);
  559.          if (var3 == 0) {
  560.             var3 = 4;
  561.          }
  562.  
  563.          var2 = (long)(this.m_dValue * (double)(10 * var3)) <= (long)(var1.m_dValue * (double)(10 * var3));
  564.       } else if ((var1.m_nFlags & 1024) != 0) {
  565.          var2 = this.m_lValue <= var1.m_lValue;
  566.       } else if ((var1.m_nFlags & 2048) == 0 && (var1.m_nFlags & 4096) != 0) {
  567.       }
  568.  
  569.       return var2;
  570.    }
  571.  
  572.    boolean NotEqual(CVariable var1) {
  573.       boolean var2 = false;
  574.       if ((var1.m_nFlags & 256) != 0) {
  575.          var2 = !this.m_strValue.equals(var1.m_strValue);
  576.       } else if ((var1.m_nFlags & 512) != 0) {
  577.          byte var3 = (byte)Math.max(this.m_cDecPlaces, var1.m_cDecPlaces);
  578.          if (var3 == 0) {
  579.             var3 = 4;
  580.          }
  581.  
  582.          var2 = (long)(this.m_dValue * (double)(10 * var3)) != (long)(var1.m_dValue * (double)(10 * var3));
  583.       } else if ((var1.m_nFlags & 1024) != 0) {
  584.          var2 = this.m_lValue != var1.m_lValue;
  585.       } else if ((var1.m_nFlags & 2048) != 0) {
  586.          var2 = this.m_dateValue != var1.m_dateValue;
  587.       } else if ((var1.m_nFlags & 4096) != 0) {
  588.          var2 = this.m_timeSpanValue != var1.m_timeSpanValue;
  589.       }
  590.  
  591.       return var2;
  592.    }
  593.  
  594.    void SetType(int var1) {
  595.       this.m_nFlags &= -32513;
  596.       this.m_nFlags |= var1;
  597.    }
  598. }
  599.